﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MainFrameProperty
{
    public  static class PropertyValue
    {

        public static object GetValue(string type, string defaultvalue)
        {
            switch(type)
            {
                case "string":
                    return StringValue(defaultvalue);
                case "boolean":
                    return BooleanValue(defaultvalue);
                case "number":
                    return NumberValue(defaultvalue);
                case "array":
                    return ArrayValue();
                case "object":
                    return ObjectValue();
                default:
                    return null;
            }
        }

        private static object ObjectValue()
        {
            return new UIObject();
        }

        private static object ArrayValue()
        {
            return new UIArray();
        }

        private static object NumberValue(string defaultvalue)
        {
            return StringValue(defaultvalue);
        }

        private static object BooleanValue(string defaultvalue)
        {
            if (string.IsNullOrEmpty(defaultvalue)) 
            {
                return true;
            }
            return Convert.ToBoolean(defaultvalue);
        }

        private static object StringValue(string defaultvalue)
        {
            if (string.IsNullOrEmpty(defaultvalue)) 
            {
                return string.Empty;
            }
            if (defaultvalue.ToLower() == "null") 
            {
                return string.Empty;
            }
            return defaultvalue;
        }
    }
}
